package com.neouton.crm.cm.entity;

import java.io.Serializable;
import java.sql.Timestamp;
import java.util.List;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.neouton.common.entity.BaseEntityVO;
import com.neouton.crm.entity.SysUserEntity;
import com.neouton.encrypt.typehandler.Encrypt;
import lombok.Data;

/**
 * 费用迁移表
 * @TableName sales_cost_migrate
 */
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class SalesCostMigrateVO extends BaseEntityVO implements Serializable {
    /**
     * 费用迁移主键
     */
    private Integer costMigrateId;

    /**
     * 费用单号
     */
    private String costNumber;

    /**
     * 机会点主键
     */
    private Integer opportunityId;
    /**
     * 机会名称
     */
    private String opportunityTheme;

    /**
     * 项目管理主键
     */
    private Integer projectManageId;
    /**
     * 项目名称
     */
    private String projectTheme;

    /**
     * 费用金额
     */
    private Encrypt amount;
    /**
     * 费用金额小
     */
    private Encrypt amountSmall;
    /**
     * 费用金额大
     */
    private Encrypt amountLarge;

    /**
     * 费用备注
     */
    private String remark;

    /**
     * 费用类型
     */
    private Integer costType;
    /**
     * 费用类型名
     */
    private String costTypeName;
    /**
     * 费用类型集合
     */
    private List<Integer> costTypeList;

    /**
     * 迁移状态0：未迁移 1：已迁移
     */
    private Integer migrateState;
    /**
     * 迁移状态名
     */
    private String migrateStateName;
    /**
     * 迁移状态集合
     */
    private List<Integer> migrateStateList;

    /**
     * 工作流ID
     */
    private Integer businessId;

    /**
     * 审核状态
     */
    private Integer auditState;
    /**
     * 审核状态名
     */
    private String auditStateName;
    /**
     * 审核状态集合
     */
    private List<Integer> auditStateList;

    /**
     * 创建者
     */
    private Integer principal;
    /**
     * 负责人姓名
     */
    private String principalName;
    /**
     * 负责人集合
     */
    private List<Integer> principalList;

    /**
     * 抄送对象ID，逗号分隔
     */
    private String copyFor;

    /**
     * 逻辑删除0：存在 1：删除
     */
    private Integer deleted;

    private static final long serialVersionUID = 1L;

    /**
     * 申请原因
     */
    private String reasonApplication;

    /**
     * 审批意见
     */
    private String processComments;

    /**
     * 审批主表ID
     */
    private Integer approvalId;
    private List<Integer> approvalList;

    /**
     * 前端排序标识
     */
    @TableField(exist = false)
    private String orderByColum;

    @TableField(exist = false)
    private String orderByProp;

    @TableField(exist = false)
    private String order;

    /**
     * 费用金额 page
     */
    private String amountPage;

    /**
     * 费用金额 total
     */
    private String amountTotal;

    /**
     * 申请人
     */
    private Integer applicant;
    /**
     * 申请时间
     */
    private Timestamp applyTime;
    /**
     * 下一处理人
     */
    private Integer nextApprover;
    /**
     * 待办编号
     */
    private String approvalCode;

    /**
     * 转发人集合
     */
    private List<SysUserEntity> senderList;
}